<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>数组的几种方法</title>
</head>
<body>
    <script>
        
        // 数组ary中出现item的次数
        
        // 方法一 ： -> 遍历元素，相等加一
        /* function itemCount (ary,item) {
            let count = 0;
            ary.forEach(ele=>{
                if(ele==item){
                    count++;
                }
            });
            return count;
        } */


        // 方法二: -> 累加器

        /* function itemCount (ary,item) {
            return ary.reduce((prev,next)=>{
                return prev+(next==item?1:0)
            },0);
        } */

        // 方法三： -> 过滤器 过滤出目标元素的数组  求长度

        /* function itemCount(ary,item) {
            let arr = ary.filter(ele=>ele===item);
            return arr.length;
        } */

        //console.log(itemCount([1,2,1,2,3,3,3,1],1));



        // 找出数组 arr 中重复出现过的元素

        // 方法一: -> 利用indexof lastindexof
        /* function aryUnique(ary){
            let tempAry = [];
            ary.forEach(item=>{
                if(ary.indexOf(item)!==ary.lastIndexOf(item) && tempAry.indexOf(item)===-1){
                    tempAry.push(item);
                }
            });
            return tempAry;
        } */

        // 方法二：-> 利用对象
        /* function aryUnique(ary) {
            let obj = {};
            let tempArr = [];
            ary.forEach(ele=>{
                if(!obj[ele]){
                    obj[ele]=1;
                }else{
                    obj[ele]++;
                }
            });
            for(let key in obj){
                if(obj[key]>1){
                    tempArr.push(key);
                }
            }
            return tempArr.map(item=>parseInt(item));
        }

        console.log(aryUnique([1,2,3,1,3,4,4,5])); */


        // 
    
    </script>
</body>
</html>